Skip to content

feat(notes): blank note editor + edit flow#1427

Merged
b1ink0 merged 10 commits into
feat/redesignfrom
claude/feat/notes-editor
Jun 8, 2026
Merged

feat(notes): blank note editor + edit flow#1427
b1ink0 merged 10 commits into
feat/redesignfrom
claude/feat/notes-editor

Conversation

@rtBot

@rtBot rtBot commented Jun 3, 2026

Copy link
Copy Markdown

Description

  • Implements the Blank Note Editor view.
  • Wires the "New blank note" option in the Notes tab's Create dropdown to a dedicated full-page editor (/projects/:projectId/notes/new) that creates a Note.
  • Adds per-card ellipsis with an "Edit" option (/projects/:projectId/notes/:noteId/edit) that loads the same editor in update mode. Save returns the user to the Notes grid (?tab=notes), where SWR revalidates on mount and shows the new / updated card.
  • Adds per-card ellipsis with an "Delete" option
  • Adds more dark border and shadows to note cards
  • Updates note cards to show full date formatting 1 week ago.

Screenshot/Screencast

Screen.Recording.2026-06-05.at.3.34.34.PM.mov

Checklist

  • I have carefully reviewed the code before submitting it for review.
  • This code is adequately covered by unit tests to validate its functionality.
  • I have conducted thorough testing to ensure it functions as intended.
  • A member of the QA team has reviewed and tested this PR (To be checked by QA or code reviewer)

Fixes #1097

Wires the "New blank note" dropdown option to a full-page editor view
that creates Project Status Updates via the BE
`create_project_status_update` endpoint, and re-instates the per-card
ellipsis dropdown with an "Edit" option that opens the same editor in
update mode (`update_project_status_update`). The editor hides the
"About this project" sidebar and the project tabs strip for a
distraction-free authoring experience, leaving only the breadcrumb +
sub-header (avatar + name + "Save note") and a TextEditor workspace
with placeholder text.

Also fixes a pre-existing tab-order mismatch in
`tabs/index.tsx` where TAB_KEYS had "notes" at index 3 but TABS had
Risks at index 3 — `?tab=notes` rendered Risks content and clicks on
the Notes tab generated `?tab=risks` URLs. Reordering TABS to match
TAB_KEYS unbreaks the redirect target this PR depends on and the
view-selector dropdown on the Risks tab.

Fixes #1097

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a dedicated full-page note editor under Project Details to support creating a new “blank note” and editing existing notes (Project Status Updates), including routing and a per-note card “Edit” action. Also fixes a tab ordering mismatch so ?tab=notes correctly renders the Notes tab content (needed for post-save redirect).

Changes:

  • Introduces /projects/:projectId/notes/new and /projects/:projectId/notes/:noteId/edit routes backed by a new note-editor/ page and supporting hooks.
  • Adds an ellipsis dropdown on note cards with an “Edit” action that navigates to the edit route.
  • Reorders the Project Details TABS array to align with TAB_KEYS so Notes/Risks tabs map correctly.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
frontend/packages/app/src/route.tsx Registers new note editor routes and lazy-loads the editor page.
frontend/packages/app/src/pages/project-details/tabs/notes/noteCard.tsx Turns the note card ellipsis into an actions dropdown with “Edit”.
frontend/packages/app/src/pages/project-details/tabs/index.tsx Fixes Notes/Risks tab content ordering to match query-string tab keys.
frontend/packages/app/src/pages/project-details/note-editor/index.tsx New full-page editor shell with edit-mode gating + save/redirect behavior.
frontend/packages/app/src/pages/project-details/note-editor/workspace.tsx New title textarea + TextEditor workspace UI for the note body.
frontend/packages/app/src/pages/project-details/note-editor/subHeader.tsx New sub-header showing avatar/name and Save button.
frontend/packages/app/src/pages/project-details/note-editor/useNoteMutation.ts New unified create/update “save” hook for notes.
frontend/packages/app/src/pages/project-details/note-editor/useNoteDetail.ts New note detail fetch hook for edit mode.
frontend/packages/app/src/pages/project-details/note-editor/constants.ts New path builders for editor routes + notes grid redirect URL.
frontend/packages/app/src/pages/project-details/note-editor/types.ts New shared types for editor mode and draft shape.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread frontend/packages/app/src/pages/project-details/note-editor/workspace.tsx Outdated
Comment thread frontend/packages/app/src/pages/project-details/note-editor/useNoteMutation.ts Outdated
rtBot and others added 3 commits June 3, 2026 12:11
- workspace.tsx: pass fixedMenu={false} explicitly to TextEditor so the
  distraction-free editor never grows a toolbar regardless of upstream
  default changes.
- useNoteMutation.ts: drop unused NoteEditorMode import flagged by lint.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sidebar is not visible for this page. Update about/index to look at current location for rendering

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in e88cf7e — editor%2Findex.tsx (sidebar self-hides via useMatch in about/index.tsx).

Comment thread frontend/packages/app/src/pages/project-details/tabs/notes/index.tsx Outdated
Comment thread frontend/packages/app/src/pages/project-details/tabs/notes/noteCard.tsx Outdated
Comment thread frontend/packages/app/src/pages/project-details/tabs/notes/constants.ts Outdated
Per maintainer review on PR #1427: replace the search-param view-switch
in tabs/notes with real `/projects/:projectId/notes/{new,:noteId/edit}`
routes nested under the project detail.

- route.tsx: nest two child routes under :projectId, lazy-load NoteEditor
- project-details/index.tsx: lift NotesProvider; detect editor routes via
  useMatch and swap the Tabs strip for <Outlet />
- about/index.tsx: split out content; return null on editor routes so the
  sidebar self-hides
- tabs/notes/index.tsx: drop the activeView switch; Notes just renders the
  grid (NotesProvider lives one level up)
- tabs/notes/noteCard.tsx: Dropdown Edit option navigates to the edit URL
- tabs/notes/subHeader.tsx: New blank note navigates to .../notes/new
- tabs/notes/editor/index.tsx: read noteId/projectId from useParams, infer
  mode from noteId, useNavigate to return to ?tab=notes after save
- tabs/notes/constants.ts: drop NOTE_ID/NOTE_MODE search-param keys

Browser-verified on PROJ-0205:
- /?tab=notes renders tabs + grid + sidebar
- /notes/new renders the editor full-width, no tabs/sidebar
- /notes/<id>/edit pre-populates title + body, no tabs/sidebar

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@b1ink0 b1ink0 self-requested a review June 4, 2026 13:27
Comment thread frontend/packages/app/src/route.tsx
Comment thread frontend/packages/app/src/route.tsx Outdated
@b1ink0 b1ink0 force-pushed the claude/feat/notes-editor branch from 5611569 to f05053e Compare June 5, 2026 08:12
@b1ink0 b1ink0 requested a review from ayushnirwal June 5, 2026 10:06
Comment thread frontend/packages/app/src/route.tsx Outdated
Comment thread frontend/packages/app/src/pages/project-details/tabs/notes/noteCard.tsx Outdated
@ayushnirwal ayushnirwal self-requested a review June 8, 2026 07:00
@b1ink0 b1ink0 merged commit 872ed84 into feat/redesign Jun 8, 2026
5 checks passed
@b1ink0 b1ink0 deleted the claude/feat/notes-editor branch June 8, 2026 08:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants